using System;
using System.Collections.Generic;
using System.ComponentModel;

namespace Comteck.Dto.Orders {
  /// <summary>
  /// excel
  /// </summary>
  public class SaleOrderExcelDto : ExcelDto {

    /// <summary>
    /// 订单号
    /// </summary>
    [Description("订单号")]
    [ReadOnly(true)]
    public string Code { get; set; }

    /// <summary>
    /// 跟团号
    /// </summary>
    [Description("跟团号")]
    [ReadOnly(true)]
    public string GroupNumber { get; set; }

    /// <summary>
    /// 团购标题
    /// </summary>
    [Description("团购标题")]
    [ReadOnly(true)]
    public string GroupTitle { get; set; }

    /// <summary>
    /// 下单人
    /// </summary>
    [Description("下单人")]
    [ReadOnly(true)]
    public string BuyUserName { get; set; }

    /// <summary>
    /// 团员备注
    /// </summary>
    [Description("团员备注")]
    [ReadOnly(true)]
    public string BuyUserDesc { get; set; }

    /// <summary>
    /// 支付时间
    /// </summary>
    [Description("支付时间")]
    [ReadOnly(true)]
    public DateTime? PayDate { get; set; }

    /// <summary>
    /// 团长备注
    /// </summary>
    [Description("团长备注")]
    [ReadOnly(true)]
    public string GroupDesc { get; set; }

    /// <summary>
    /// 商品品项数
    /// </summary>
    [Description("商品品项数")]
    [ReadOnly(true)]
    public int GoodsCount { get; set; }

    /// <summary>
    /// 商品总重量
    /// </summary>
    [Description("商品总重量")]
    [ReadOnly(true)]
    public decimal GoodsWeight { get; set; }

    /// <summary>
    /// 商品金额
    /// </summary>
    [Description("商品金额")]
    [ReadOnly(true)]
    public decimal GoodsAmt { get; set; }

    /// <summary>
    /// 运费金额
    /// </summary>
    [Description("运费金额")]
    [ReadOnly(true)]
    public decimal FreightAmt { get; set; }

    /// <summary>
    /// 优惠金额
    /// </summary>
    [Description("优惠金额")]
    [ReadOnly(true)]
    public decimal DiscountAmt { get; set; }

    /// <summary>
    /// 订单金额
    /// </summary>
    [Description("订单金额")]
    [ReadOnly(true)]
    public decimal TotalAmt { get; set; }

    /// <summary>
    /// 退款金额
    /// </summary>
    [Description("退款金额")]
    [ReadOnly(true)]
    public decimal ReturnAmt { get; set; }

    /// <summary>
    /// 订单状态
    /// </summary>
    [Description("订单状态")]
    [ReadOnly(true)]
    public string StatusName { get; set; }

    /// <summary>
    /// 团长名称
    /// </summary>
    [Description("团长名称")]
    [ReadOnly(true)]
    public string GroupName { get; set; }

    /// <summary>
    /// 物流方式
    /// </summary>
    [Description("物流方式")]
    [ReadOnly(true)]
    public string DeliveryTypeName { get; set; }
    /// <summary>
    /// 自提点id
    /// </summary>
    [Description("自提点id")]
    [ReadOnly(true)]
    public int SelfOrgId { get; set; }

    /// <summary>
    /// 自提点名称
    /// </summary>
    [Description("自提点名称")]
    [ReadOnly(true)]
    public string SelfOrgName { get; set; }

    /// <summary>
    /// 自提点联系人
    /// </summary>
    [Description("自提点联系人")]
    [ReadOnly(true)]
    public string SelfOrgContacts { get; set; }

    /// <summary>
    /// 自提点电话
    /// </summary>
    [Description("自提点电话")]
    [ReadOnly(true)]
    public string SelfOrgPhone { get; set; }

    /// <summary>
    /// 自提点地址
    /// </summary>
    [Description("自提点地址")]
    [ReadOnly(true)]
    public string SelfOrgAddress { get; set; }

    /// <summary>
    /// 收货人
    /// </summary>
    [Description("收货人")]
    [ReadOnly(true)]
    public string Recipient { get; set; }

    /// <summary>
    /// 收货人联系电话
    /// </summary>
    [Description("收货人联系电话")]
    [ReadOnly(true)]
    public string RecipientPhone { get; set; }

    /// <summary>
    /// 省份
    /// </summary>
    [Description("省份")]
    [ReadOnly(true)]
    public string Province { get; set; }

    /// <summary>
    /// 城市
    /// </summary>
    [Description("城市")]
    [ReadOnly(true)]
    public string City { get; set; }

    /// <summary>
    /// 区县
    /// </summary>
    [Description("区县")]
    [ReadOnly(true)]
    public string District { get; set; }

    /// <summary>
    /// 详细地址
    /// </summary>
    [Description("详细地址")]
    [ReadOnly(true)]
    public string RecipientAddress { get; set; }

    /// <summary>
    /// 订单明细
    /// </summary>
    [Description("订单明细")]
    [ReadOnly(true)]
    public virtual List<SaleOrderDetailExcelDto> DetailList { get; set; }

    /// <summary>
    /// 自提点标签是否存在
    /// </summary>
    [Description("自提点标签是否存在")]
    [Browsable(false)]
    [ReadOnly(true)]
    public bool SelfOrgTagIdExists { get; set; }
  }

  /// <summary>
  /// 
  /// </summary>
  public class SaleOrderDetailExcelDto : ExcelDto {

    /// <summary>
    /// 商品ID
    /// </summary>
    [Description("商品ID")]
    [ReadOnly(true)]
    public int ProductId { get; set; }

    /// <summary>
    /// 商品名称
    /// </summary>
    [Description("商品ID")]
    [ReadOnly(true)]
    public string ProductName { get; set; }

    /// <summary>
    /// 商品数量
    /// </summary>
    [Description("商品数量")]
    [ReadOnly(true)]
    public int Qty { get; set; }

    /// <summary>
    /// 单位重量
    /// </summary>
    [Description("单位重量")]
    [ReadOnly(true)]
    public decimal Weight { get; set; }

    /// <summary>
    /// 总重量
    /// </summary>
    [Description("总重量")]
    [ReadOnly(true)]
    public decimal TotalWeight { get; set; }

    /// <summary>
    /// 自提点标签是否存在
    /// </summary>
    /// </summary>
    [Description("自提点标签是否存在")]
    [Browsable(false)]
    [ReadOnly(true)]
    public bool WeightExist { get; set; }
  }

}
